// # -*- mode: c++ -*-
#pragma once
#include <ttl/bits/flat_shape.hpp>
#include <ttl/bits/idx_encoding.hpp>
#include <ttl/bits/std_encoding.hpp>
#include <ttl/bits/std_shape.hpp>
#include <ttl/bits/std_tensor_type.hpp>
#include <ttl/bits/type_encoder.hpp>

namespace ttl
{
namespace experimental
{
template <typename R, ttl::internal::rank_t r>
using type = ttl::internal::basic_tensor_type<R, ttl::internal::basic_shape<r>>;

using idx_encoder =
    ttl::internal::basic_type_encoder<ttl::internal::idx_format::encoding>;

using std_encoder =
    ttl::internal::basic_type_encoder<experimental::std_encoding>;

template <typename E = idx_encoder>
using raw_type =
    ttl::internal::basic_raw_tensor_type<E, ttl::internal::basic_flat_shape<>>;
}  // namespace experimental
}  // namespace ttl
